package com.myown.structure;

/**
 * 队列接口
 *
 * @author lincky
 * @version v1.0.0
 * @time 2017.02.22 14:54
 */
public interface Queue<E> {

    /**
     * 入队
     *
     * @param item 入队元素
     */
    void enqueue(E item);

    /**
     * 获取头部
     *
     * @return 头元素
     */
    E front();

    /**
     * 出队 <p>
     *
     * @return 队尾数据
     */
    E dequeue();

    /**
     * 队列是否为空 <p>
     *
     * @return <tt>true</tt> - 栈为空
     */
    boolean empty();

    /**
     * 队列大小 <p>
     *
     * @return 栈大小
     */
    int size();

    /**
     * 清空队列
     */
    void clear();

}
